import os, sys, argparse

# 将运行目录作为环境变量
currentPath = os.path.dirname(__file__)
sys.path.append(currentPath)

# 导入自定义模块
from console import displayMenu


# 解析参数
def parserArgs():
    parser = argparse.ArgumentParser(description="command argparse")
    parser.add_argument(
        "--output",
        "-O",
        type=str,
        default=os.getcwd(),
        help="文件输出目录，默认为当前目录",  # 文件输出目录
    )

    parser.add_argument(
        "--source",
        "-S",
        type=str,
        default=os.getcwd(),
        help="源配置目录，默认为当前目录",  # 查询关键词
    )

    parser.add_argument(
        "--dbType",
        "-T",
        type=str,
        default="mysql",
        help="生成sql的数据库类型：mysql或oracle，默认为mysql",  # 生成sql的数据库类型
    )

    parser.add_argument(
        "--format",
        "-F",
        type=str,
        default="sql",
        help="以什么方式生成文件数据：csv或excel或json或sql，默认为sql",  # 输出数据格式
    )

    parser.add_argument(
        "--dbInfo",
        type=str,
        default="root:123456@localhost:3306/test",
        help="数据库连接信息，MySQL 格式为 user:password@host:port/database，"
             "Oracle 格式为 user:password@host:port/service_name"
    )

    # 创建互斥组
    group = parser.add_mutually_exclusive_group()

    # 添加参数到互斥组
    group.add_argument(
        "--export",
        action="store_true",
        help="导出数据",
    )

    group.add_argument(
        "--print",
        action="store_true",
        help="打印数据，默认展示5条数据，更多可通过导出进行查看",
    )

    group.add_argument(
        "--dml",
        action="store_true",
        help="执行dml（数据库增删改）语句",
    )

    return parser.parse_args()


def main():
    args = parserArgs()
    # 将args转换为字典
    args_dict = vars(args)

    # 显示菜单
    displayMenu(args_dict)


if __name__ == "__main__":
    main()
